<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="HandheldFriendly" content="true"/>

  <title>Custom lexicon text</title>

  <link rel="stylesheet" href="../examples.css">

  <script src="https://code.jquery.com/pep/0.4.3/pep.js"></script>
  <script type="text/javascript" src="../../dist/iink.min.js"></script>

  <style>
    .button-div > p {
      margin-right: 12px;
    }
  </style>
</head>

<body>
<div>
  <nav>
    <div class="button-div">
      <button id="undo" class="nav-btn btn-fab-mini btn-lightBlue" disabled>
        <img src="../assets/img/undo.svg">
      </button>
      <button id="redo" class="nav-btn btn-fab-mini btn-lightBlue" disabled>
        <img src="../assets/img/redo.svg">
      </button>
    </div>
    <div class="spacer"></div>
    <input type="text" class="input-field" id="lexicon" data-type="text/plain" placeholder='Add your own lexicon (space-separated) and press "Send"'>
    <button class="classic-btn" id="reinit">Send</button>
  </nav>
  <div id="editor" touch-action="none"></div>
</div>
<script>
  const editorElement = document.getElementById('editor');

  const undoElement = document.getElementById('undo');
  const redoElement = document.getElementById('redo');

  const reinitButton = document.getElementById('reinit');
  const lexicon = document.getElementById('lexicon');

  editorElement.addEventListener('changed', (event) => {
    undoElement.disabled = !event.detail.canUndo;
    redoElement.disabled = !event.detail.canRedo;
  });

  undoElement.addEventListener('click', () => {
    editorElement.editor.undo();
  });
  redoElement.addEventListener('click', () => {
    editorElement.editor.redo();
  });

  reinitButton.addEventListener('click', () => {
    const values = lexicon.value;
    const configuration = editorElement.editor.configuration;

    configuration.recognitionParams.iink.text = {
      configuration: {
        customLexicon: values.split(' '),
        addLKText: true
      }
    };
    editorElement.editor.configuration = configuration;
  });

  /**
   * Attach an editor to the document
   * @param {Element} The DOM element to attach the ink paper
   * @param {Object} The recognition parameters
   */
  iink.register(editorElement, {
    recognitionParams: {
      type: 'TEXT',
      protocol: 'WEBSOCKET',
      server: {
        scheme: 'https',
        host: 'webdemoapi.myscript.com',
        applicationKey: '515131ab-35fa-411c-bb4d-3917e00faf60',
        hmacKey: '54b2ca8a-6752-469d-87dd-553bb450e9ad'
      },
      iink: {
        text: {
          configuration: {
            addLKText: true
          }
        }
      }
    }
  });

  window.addEventListener('resize', () => {
    editorElement.editor.resize();
  });
</script>
</body>

</html>